package comp.movel.ubiqua.model;

import java.io.IOException;

import org.xmlpull.v1.XmlPullParserException;

import android.util.Log;

import comp.movel.ubiqua.bluetooth.Constants;
import comp.movel.ubiqua.ws.ConexaoWebService;

public class FimDeJogoException extends Exception {
	private static final long serialVersionUID = 2666439550023761757L;
	public Placar placar;
	private String msg;
	
	
	public FimDeJogoException(Placar placar){
		this.placar = placar;

	}
	
	@Override
	public String getMessage() {
//		String placarFinal = "Placar: Jog1 - " + placar.getPlacarJog1() + " x "+ placar.getPlacarJog2() + " - Jog 2 "; 
//		if(jog1Venceu()){
//			msg = "Jogador 1 venceu!\n" + placarFinal;
//		}else if(jog2Venceu()){
//			msg = "Jogador 2 venceu!\n" + placarFinal;
//		}else{
//			msg = "Empate!\n" + placarFinal;
//		}
		
		String nomeJog1 = placar.getNomeJog1();
		String nomeJog2 = placar.getNomeJog2();
		
		Log.i(Constants.TAG, "EXCEPTION CLASS: Jogadores = " + nomeJog1 + nomeJog2);
		
		
		String placarFinal = "Placar: "+ nomeJog1 + " - " + placar.getPlacarJog1()
				+ " x " + placar.getPlacarJog2() + " - "  + nomeJog2;
		
		Log.i(Constants.TAG, placarFinal);
		
		if(jog1Venceu()){
			msg = nomeJog1 + " venceu!\n" + placarFinal;
		}else if(jog2Venceu()){
			msg = nomeJog2 + " venceu!\n" + placarFinal;
		}else{
			msg = "Empate!\n" + placarFinal;
		}
		try {
			atualizarRanking();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			msg += "\n Erro ao Atualizar Ranking. Sem internet";
		} catch (XmlPullParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			msg += "\n Erro ao Atualizar Ranking.";
		}
		return msg;
	}
	
	public void atualizarRanking() throws IOException, XmlPullParserException{
		ConexaoWebService.atualizaRanking(placar.getNomeJog1(), placar.getPlacarJog1());
		ConexaoWebService.atualizaRanking(placar.getNomeJog2(), placar.getPlacarJog2());
	}

	private boolean jog2Venceu() {
		return placar.getPlacarJog1() < placar.getPlacarJog2();
	}

	private boolean jog1Venceu() {
		return placar.getPlacarJog1() > placar.getPlacarJog2();
	}
}
